package com.neusoft.yiyang.diet.controller;

import com.neusoft.yiyang.common.entity.diet.MealTemplateItem;
import com.neusoft.yiyang.diet.service.MealTemplateItemService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Tag(name = "膳食模板项管理接口", description = "管理膳食模板与食材的关联关系，维护模板包含的具体食材信息")
@RestController
@RequestMapping("/meal-template-items")
public class MealTemplateItemController {

    @Autowired
    private MealTemplateItemService mealTemplateItemService;

    @Operation(summary = "添加膳食模板项", description = "为膳食模板添加具体食材项（关联模板与食材，包含用量等信息）")
    @PostMapping("/add")
    public void addMealTemplateItem(
            @Parameter(description = "膳食模板项信息（含模板ID、食材ID、用量等）", required = true)
            @RequestBody MealTemplateItem mealTemplateItem) {
        mealTemplateItemService.addMealTemplateItem(mealTemplateItem);
    }

    @Operation(summary = "获取所有膳食模板项", description = "查询系统中所有膳食模板与食材的关联记录")
    @GetMapping("/all")
    public List<MealTemplateItem> getAllMealTemplateItems() {
        return mealTemplateItemService.getAllMealTemplateItems();
    }

    @Operation(summary = "查询模板包含的食材项", description = "获取指定膳食模板下的所有食材项（含食材ID、用量等）")
    @GetMapping("/template/{templateId}")
    public List<MealTemplateItem> getMealTemplateItemsByTemplateId(
            @Parameter(description = "膳食模板ID", required = true)
            @PathVariable Integer templateId) {
        return mealTemplateItemService.getMealTemplateItemsByTemplateId(templateId);
    }
}